package model.analityka.cechy.funkcje.dosprawdzenia;

import infrastruktura.PlikNotowanieRepozytorium;
import model.analityka.cechy.funkcje.FunkcjaAT;
import model.portfel.NotowanieRepozytorium;

import org.springframework.beans.factory.annotation.Autowired;

import system.Data;
import tools.StatystykaAT;

public class FunkcjaOBV implements FunkcjaAT {

	@Autowired
	static NotowanieRepozytorium notowanieRepozytorium = new PlikNotowanieRepozytorium();
	
	String walorNazwa;
	int przedzialRozmiar;
	
	public FunkcjaOBV(String walorNazwa, Integer przedzialRozmiar) {
		super();
		this.walorNazwa = walorNazwa;
		this.przedzialRozmiar = przedzialRozmiar;
	}
	
	@Override
	public double obliczWartosc(Object etykieta) {
		Data data = (Data)etykieta;
		double[] cenyZamknieciaTablicaDouble = 
				notowanieRepozytorium.pobierzCenyZamknieciaTablicaDouble(walorNazwa, data, przedzialRozmiar+1);
		
		double[] wolumenyTablicaDouble = 
				notowanieRepozytorium.pobierzWolumenTablicaDouble(walorNazwa, data, przedzialRozmiar);

		double wynik = StatystykaAT.obliczOBV(cenyZamknieciaTablicaDouble, wolumenyTablicaDouble);
		return wynik;
	}

	public String getWalorNazwa() {
		return walorNazwa;
	}

	public int getPrzedzialRozmiar() {
		return przedzialRozmiar;
	}
}
